Berechnen Sie für dieselbe Kreiskante tangent_at(t) bei
Hinweise: .tangent_at(t), Vector(0, 0, z), .dot(), .normalized()
Erstellen Sie eine Ellipse und berechnen Sie 8 gleichmäßig verteilte Parameterpunkte:
ellipse = bd.Edge.make_ellipse(x_radius=30, y_radius=15)
punkte = [ellipse.position_at(i / 8) for i in range(8)]
Hinweise: (p2 - p1).length, Folie „Parametrische Kurven"
Erstellen Sie einen Zylinder (radius=10, height=20) und führen Sie die gleichen Operationen in unterschiedlicher Reihenfolge durch:
center()) jeweils?Hinweise: .rotate(Axis.Z, winkel), .move(Location((dx, dy, dz))), .center()
Erstellen Sie einen Quader (Box(40, 30, 10)) und leiten Sie eine Konstruktionsebene von der Oberseite ab. Platzieren Sie darauf einen Zylinder (radius=8, height=15).
Plane(oberseite) direkt Plane.XY.offset(5) verwendet hätten?Hinweise: .faces().sort_by(Axis.Z).last, Plane(face), ebene * bd.Cylinder(...), + oder fuse
Bauen Sie eine asymmetrische Form aus zwei Quadern (sie sollen nicht spiegelsymmetrisch sein). Spiegeln Sie die Form an Plane.YZ und verbinden Sie Original und Spiegelbild.
Hinweise: .mirror(Plane.YZ), bd.Pos(x, y) * ..., +
Erstellen Sie einen freistehenden Kreis und berechnen Sie den Versatz:
kreis = bd.Edge.make_circle(radius=20)
versatz = kreis.offset_2d(5)
geom_type haben die resultierenden Kanten? Was bedeutet das geometrisch?offset_2d einen Wire (mehrere Kanten) statt einer einzelnen Kante?Hinweise: .edges(), .geom_type, .length,
Erstellen Sie eine Ellipse (x_radius=30, y_radius=15) und versetzen Sie sie um 5.
geom_type haben die resultierenden Kanten? Unterschied zu 4.1?Hinweise: .offset_2d(d), .edges(), .geom_type
Erstellen Sie eine Ringscheibe mit 6 Bohrungen auf einem Lochkreis:
import math
scheibe = bd.Cylinder(radius=40, height=8) - bd.Cylinder(radius=12, height=8)
for winkel in range(0, 360, 60):
x = 28 * math.cos(math.radians(winkel))
y = 28 * math.sin(math.radians(winkel))
scheibe = scheibe - bd.Pos(x, y) * bd.Cylinder(radius=4, height=8)
radius=0.5.Hinweise: collections.Counter, .filter_by(bd.GeomType.CIRCLE), .radius,
.filter_by_position(Axis.Z, minimum=..., maximum=...), bd.fillet(..., radius=...)